const add = function(x, y) {
	return x + y
}

const memoize = function(func, content) {
	let cache = Object.create(null)
	content = content || this
	return (...key) => {
		// console.log(cache, key, cache[key]) // 第一次：{} [ 100, 200 ] undefined， 第二次： { '100,200': 300 } [ 100, 200 ] 300  
		if (!cache[key]) {
			cache[key] = func.apply(content, key)
		}
		return cache[key]
	}
}

const calc = memoize(add);
const num1 = calc(100, 200)
// 缓存得到的结果
const num2 = calc(100, 200)

console.log(num1, num2)